<?php

/**
 * Liste des messages du livre d'or par flux Atom
 */

try {
	//Identifiant de l'onglet
	$idOnglet = tabGetIdByCode('TAB_LISTE_LIVREOR');
	
	//Identifiant de l'onglet de modification des livres d'or
	$idOngletModif = tabGetIdByCode('TAB_UPDATE_LIVREOR');
	
	//On récupère les informations du cookie
	$idMariage = getIdMariage();
	$infosMariage = getInfosMariage($idMariage);
	
	//Tableau de parité des couleurs d'arrière-plan par nom de classe
	$aryBckGdColorClass = array
						(0 => 'bgLightGrey'
						,1 => 'bgLightBlue'
						);
	
	if (isset($_REQUEST['perPage'])) {
		//POST ou GET. Affichage différent demandé. Il y avait donc forcément des invités, pas besoin de contrôler
		$perPage = intval($_REQUEST['perPage']);
	} else {
		//Valeur par défaut
		$perPage = DEFAUT_MAX_INVITE_PAR_PAGE;
	}
	
	//Compteur de lignes des livres d'or, modulo 2
	$cptModuloLivreOr = 0;
	
	//Compteur d'invités à afficher
	$idxLivreOr2Print = 0;
	$maxLivreOrParPage = $perPage;
	
	//Compteur d'itérations
	$cptIter = 0;
	
	//Page courante
	$pageCourante = 1;
	
	//Initialisation des variables de sélection de combos box
	$selPerPage10 = '';
	$selPerPage20 = '';
	$selPerPage50 = '';
	$selPerPage100 = '';
	
	
	if ($perPage == '10') {
		$selPerPage10 = ' selected="selected"';
	} elseif ($perPage == '20') {
		$selPerPage20 = ' selected="selected"';
	} elseif ($perPage == '50') {
		$selPerPage50 = ' selected="selected"';
	} elseif ($perPage == '100') {
		$selPerPage100 = ' selected="selected"';
	}
	
	$listeLivreOr = getListeLivreOrByMariage($infosMariage[KEY_ID_MARIAGE]);
	$nbListeLivreOr = count($listeLivreOr);
			
	if ($_SERVER['REQUEST_METHOD'] === 'GET') {
		//Appel de la page ou pagination
		if (isset($_GET['page'])) {
			$pageCourante = intval($_GET['page']);
		}
		
		$isSortAsc = null;
		if (isset($_GET['sort'])) {
			//Demande de tri
			if ($_GET['sort'] == 'asc') {
				//Tri ascendant par nom_prenom
				$isSortAsc = true;
			} elseif ($_GET['sort'] == 'desc') {
				//Tri descendant par nom_prenom
				$isSortAsc = false;
			}
		}
		$listeLivreOr = getListeLivreOrByMariageSorted($infosMariage[KEY_ID_MARIAGE], $isSortAsc);
		$nbListeLivreOr = count($listeLivreOr);
	}
	
	//On calcule l'index du livre d'or à afficher
	$idxLivreOr2Print = ($pageCourante - 1) * $maxLivreOrParPage;
?>

<?php if ($nbListeLivreOr > 0) { ?>
<div>
	<form action="index.php?onglet=<?php echo $idOnglet ?>" method="post">
		Afficher
		<select name="perPage" onchange="this.form.submit();">
			<option value="10"<?php echo $selPerPage10?>>10</option>
			<option value="20"<?php echo $selPerPage20?>>20</option>
			<option value="50"<?php echo $selPerPage50?>>50</option>
			<option value="100"<?php echo $selPerPage100?>>100</option>
		</select>
		par page
	</form>
</div><br />
<table class="listInviteBorder">
<thead class="bold">
	<tr>
		<td class="nom listInviteBorder paddingLeftRight02">Nom, Prénom&nbsp;
			<a href="index.php?onglet=<?php echo $idOnglet ?>&sort=asc">
				<img alt="sort_up_icon" src="./images/sort_up_green.ico" width="10%" height="30%" />
			</a>&nbsp;
			<a href="index.php?onglet=<?php echo $idOnglet ?>&sort=desc">
				<img alt="sort_down_icon" src="./images/sort_down_green.ico" width="10%" height="30%" />
			</a>
		</td>
		<td class="prenom listInviteBorder paddingLeftRight02">Message</td>
		<td class="date listInviteBorder paddingLeftRight02">Date d'insertion</td>
		<td class="date listInviteBorder paddingLeftRight02">Date de mise à jour</td>
	</tr>
</thead>
<tbody>
<?php for ($i=$idxLivreOr2Print; $i<$nbListeLivreOr && $cptIter<$maxLivreOrParPage; $i++) { ?>
	<tr class="<?php echo $aryBckGdColorClass[$cptModuloLivreOr] ?>">
		<td class="prenom listInviteBorder paddingLeftRight02">
			<a class="modifTab" href="index.php?onglet=<?php echo $idOngletModif ?>&idLivreOr=<?php echo trim($listeLivreOr[$i]['ID']); ?>">
				<?php echo printFieldArray('NOM_PRENOM', $listeLivreOr[$i]); ?>
			</a>
		</td>
		<td class="prenom listInviteBorder paddingLeftRight02"><?php echo substring($listeLivreOr[$i]['MESSAGE'], MAX_CHARACTERS_TEXT); ?></td>
		<td class="date listInviteBorder paddingLeftRight02"><?php echo dateToDisplay($listeLivreOr[$i]['DATE_INSERTION']); ?></td>
		<td class="date listInviteBorder paddingLeftRight02"><?php echo dateToDisplay($listeLivreOr[$i]['DATE_MAJ']); ?></td>
	</tr>
<?php
		//Incréments des compteurs d'affichage d'invités et d'alternance de classe css
		$idxLivreOr2Print++;
		$cptIter++;
		$cptModuloLivreOr++;
		$cptModuloLivreOr = $cptModuloLivreOr % 2;
	} //Fin for ($i=$idxLivreOr2Print; $i<$nbListeLivreOr && $cptIter<$maxLivreOrParPage; $i++)
	
?>
</tbody>
</table>
<?php
	//On gère la pagination à ce stade
	$pagination = '';
	if ($maxLivreOrParPage < $nbListeLivreOr) {
		//Le nombre total de livres d'or est strictement plus grand que le max à afficher. Une pagination est nécessaire
		$pagePrec = ($pageCourante <= 1) ? 1 : ($pageCourante - 1);
		$lastPage = ceil($nbListeLivreOr/$maxLivreOrParPage);
		//Pour la page suivante, le compteur est forcément au moins égal au max par page.
		$pageSuiv = ($pageCourante >= $lastPage) ? $lastPage : ($pageCourante + 1);
		
		$pagination = paginationManageLink($idOnglet, $pageCourante, 1, ' << ', $perPage);
		$pagination .= paginationManageLink($idOnglet, $pageCourante, $pagePrec, '< ', $perPage);
		$pagination .= paginationManageLink($idOnglet, $pageCourante, $pageSuiv, '> ', $perPage);
		$pagination .= paginationManageLink($idOnglet, $pageCourante, $lastPage, ' >> ', $perPage);
	}
	echo "<div class=\"pagination\">$pagination</div>";
} // Fin if ($nbListeLivreOr > 0)
else {
	echo '<div>Aucun livre d\'or n\'a été trouvé pour ce mariage</div>';
}
?>


<?php } // try {
	catch (Exception $e) {
		redirectErrorPage($e, 'TAB_LISTE_LIVREOR', URI_ERROR_PAGE);
	}
?>